Background and Relevant Art
In mathematics and computer science, graphs can be used to model relationships between different objects. The objects are represented as nodes and relationships between the nodes are represented using edges that connect the nodes.
Graphs can be directed graphs or undirected graphs. In directed graphs, the edges have a direction and thus traversing between two nodes is done in a single direction for a single edge. If travel between nodes can be bi-directional, then the nodes are connected by two edges, each with a different direction. For undirected graphs, travel between nodes can be bi-directional for a single edge.
When maintaining a graph diagram, a user will invest a lot of time in getting the layout as they like it. When there are changes made to the underlying graph (additions, deletions, etc.) it is beneficial to preserve the layout work the user has done in the diagram. In particular, preserving the layout work that the user has done helps the user to maintain visual context with respect to the graph. However, in some systems, automatic layout tools can be implemented to add new nodes into a graph to make the added nodes appear well placed in a graph diagram. If automatic layout tools are applied to the graph when adding new nodes graph diagram, drastic layout changes may occur thereby negating the user's time investment and making maintenance of visual context for the user difficult. Thus, for example, if new nodes are added to or removed from a graph, and an automatic layout algorithm is applied to the graph diagram, including the new nodes, all nodes, including previously laid out nodes may be rearranged thus making it difficult for the user to maintain context as nodes may be moved from their original locations. Thus, it can be difficult to implement automatic layout where the existing layout of a graph diagram is preserved and new elements are still positioned well.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.